package com.xg.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xg.common.request.OrderItemDTO;
import com.xg.common.request.UsedCarReq;
import com.xg.common.result.ApiResult;
import com.xg.common.util.PageUtil;
import com.xg.common.util.PageUtils;
import com.xg.controller.dto.UsedCarDto;
import com.xg.entity.UsedCar;
import com.xg.vo.UsedCarVO;

import java.util.List;
import java.util.Map;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jdh
 * @since 2023-03-30
 */
public interface IUsedCarService extends IService<UsedCar> {

    /**
     * @description: (汽车详情信息查询)
     * @author 荣晓凯
     * @date 2023/4/4 12:32
     * @version 1.0
     */
    UsedCarVO findCarList(Integer usedCarId);

    List<UsedCar> queryUsedCarList(Integer orderId, String usedCarName,Integer minPrice,Integer maxPrice);

    List<UsedCar> queryUsedCarSearchList(UsedCar usedCar);

    /**
     * 分页车辆列表
     * @param params
     * @return
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * @description: (卖车咨询发送短信)
     * @author 荣晓凯
     * @date 2023/4/3 22:56
     * @version 1.0
     */
    String sendMsg(String phone);

    /**
     * 后台保存接口
     * @Author: JiaDeHao
     * @Date: 15:33 2023/4/4
     */
    ApiResult saveUsedCar(UsedCar usedCar);

    OrderItemDTO getCarByCarId(Long carId);

    List<UsedCar> queryUsedCarListWithImages();

    /**
     * 后台查询接口
     * @Author: JiaDeHao
     * @Date: 15:33 2023/4/4
     */
    PageUtil<UsedCar> findCarListNew(Map<String, Object> params);

    /**
     * 后台删除接口
     * @Author: JiaDeHao
     * @Date: 15:33 2023/4/4
     */
    ApiResult deleteUsedCar(List<Integer> ids);

    ApiResult<UsedCar> selectUsedCarInfo(Integer usedCarId);

    List<UsedCar> queryImagesWithStatus();

    List<UsedCar> queryImagesWithEnergy();

    List<UsedCar> queryImagesWithType();

    /**
     * 来一个对于汽车单表的mybatisplus查询
     * @return
     */
    List<UsedCar> buySearchUsedCar(UsedCarDto usedCarDto);

    void updateUsedCar(int parseInt);

    ApiResult auditUsedCar(UsedCarReq usedCarReq);
    
    /**
     * @Author 罗迎庆
     * @Methodname queryCarList       
     * @Description //TODO (汽车详情信息查询一对一)
     * @Date 15:43 2023/4/6
     * @Param [usedCarId]
     * @return java.util.List<com.xg.entity.UsedCar>
     **/
    List<UsedCar> queryCarList(Integer usedCarId);
}
